package com.mida.dms.knw.service;

import com.mida.dms.knw.entity.KnwCompositeInstance;
import com.mida.dms.knw.entity.vo.KnwCompositeInstanceDto;
import com.mida.dms.knw.vo.KnwCompositeInstanceVo;
import com.mida.dms.knw.vo.KnwCompositeTmpVo;
import com.mida.dms.knw.vo.PageResultVo;
import com.mida.tool.common.result.ActionResult;

import java.util.List;

/**
 * KnwCompositeInstanceService
 */
public interface KnwCompositeInstanceService {

    /**
     * 保存复合实例
     * @param knwCompositeInstanceVo
     * @throws Exception
     */
    ActionResult add(KnwCompositeInstanceVo knwCompositeInstanceVo);


    /**
     * 更新复合实例
     * @param knwCompositeInstanceVo
     * @throws Exception
     */
    ActionResult update(KnwCompositeInstanceVo knwCompositeInstanceVo);

    /**
     * 删除复合实例
     * @param knwCompositeInstanceVo
     * @throws Exception
     */
    ActionResult delete(KnwCompositeInstanceVo knwCompositeInstanceVo);

    /**
     * 分页查询
     * @param knwCompositeInstanceVo
     * @return
     */
    PageResultVo<KnwCompositeInstanceDto> getKnwCompositeInstancePage(KnwCompositeInstanceVo knwCompositeInstanceVo);


    /**
     * 排序
     * @param knwCompositeInstanceVoList
     */
    ActionResult updateSort(List<KnwCompositeInstanceVo> knwCompositeInstanceVoList);

    /**
     * 列表查询
     * @param knwCompositeInstanceVo
     * @return
     */
    List<KnwCompositeInstanceDto> getKnwCompositeInstanceList(KnwCompositeInstanceVo knwCompositeInstanceVo);


    ActionResult enableKnwCompositeInstance(KnwCompositeInstanceVo knwCompositeInstanceVo);

    /**
     *
     * @param vo
     * @return
     */
    ActionResult addKnwComposite(KnwCompositeTmpVo vo) throws Exception;
}
